﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Delegate
{
    public delegate void Making(string name);//委托相当于把多个具有相同的返回类型和参数类型的方法归纳到一个类别中，委托相当一个类。

    
    class DelegateText
    {
        //事件是对委托的封装 delegate event为关键字 而不是类型
        public event Making making; //声明一个事件不过类似于声明一个进行了封装的委托类型的变量，解决主逻辑与触发事件的耦合问题，我在某时刻发布一个事件，如果你感兴趣，自己就监听我的，而不是我执行某行为，你要在我逻辑中调用你给的接口。
        public void Hello(string name,Making making)
        {
            making(name); // 委托是1对1
        }

        public void Hello(string name)
        {
            making(name); //事件是1对多 可有多个订阅注册事件
        }

    }
}
